Finden Sie schnell igus robotics für Ihr Unternehmen: 1 Ergebnisse

Embedded Softwareentwicklung

Embedded Softwareentwicklung

Embedded Softwareentwicklung aus Stuttgart für Kunden in aller Welt Wir übernehmen für Sie den komplette Softwareentwicklungslebenszyklus (SDLC) und arbeiten dabei nach Entwicklungsmodellen wie Wasserfall, Agile, Scrum oder Lean. Embedded Software oder auch Firmware ist Software, die in eingebetteten Systemen wie Mikrocontrollern, Sensoren und Aktoren in Geräten wie Autos, Smartphones und Haushaltsgeräten läuft. Unser Skillset Bei der Softwareentwicklung ist eine schnelle Umsetzung ohne lange Einarbeitungszeiten wichtig. Folgende Tools, Platformen und Programmiersprachen sind bei uns im Einsatz und können somit schnell und erfolgreich angewandt werden. Programmiersprachen C/C++ Python Rust Matlab Plattformen und Hersteller Microchip (PIC16, PIC18, PIC24, dsPIC etc.) ST Microelectronic (STM8, STM32) ESP32 Raspberry Pi Cypress Semiconductor (PSOC, Bluetooth/ARM SoCs) Atmel (diverse) Nordic Semiconductor (nRF51, nRF52 Bluetooth/ARM SoCs) Zynq-7000 Andere ARM-Plattformen auf Anfrage sehr gerne möglich Entwicklungsumgebungen Eclipse STM32CubeIDE / STM32CubeMX ARM-GCC Toolchain Atollic True Studio for ARM Microchip MPLAB-X IDE / IPE Qt GUI Framework freeRTOS touch GFX neovim make / CMake CLion (embedded) Linux Cypress PSoC Creator Keil μVision 4/5 Visual Studio Code PyCharm CLion Segger Embedded Studio Git / GitBash / GitLab / GitAhead XtratuM Next Generation (XNG) Hypervisor Einige der umgesetzten Aufgaben aus vergangenen embedded Software Projekten: Treiberentwicklung für Displays, Sensoren, UI-Elemente und Aktoren Visualisierung einer Benutzeroberfläche mit Qt / TouchGFX Einbindung von Kommunikationsprotokollen wie CAN-Bus, CANopen, SPI, I2C, UART, IO-Link Mikrocontrollerseitige Implementierung für Firmware Updates über Bluetooth Low-Energy (FOTA), CAN-Bus und UART Softwareentwicklung mit FreeRTOS (Real-time operating system for microcontrollers) Desktop Applikation zum Senden von Firmware Updates über UART und Bluetooth Desktop Programm zum Auslesen der auf dem Mikrocontroller geloggten Daten Programmierung und Inbetriebnahme eines LoRaWAN Gateways Automatisierung eines Platinentesters Ethernet-Anbindung durch den Lightweight IP (lwIP) Stack Implementierung eines Zeitsynchronisierungsprotokolls basierend auf PTP FOTA-Update für mehrere vernetzte Mikrocontroller über Bluetooth Firmware Update über CAN-Bus Zertifizierte Sicherheitssoftware für sicherheitsrelevante Elektronik Code Check / Analyse zur Fehlersuche bzw. Codeoptimierung Portierung von Software auf neue Hardware-Plattformen Rapid Prototyping Software für eilige Prototypen und Erstmuster Embedded Softwareentwicklung in 7 Steps Während die grundlegenden Schritte des Softwareentwicklungslebenszyklus (SDLC) ähnlich bleiben, gibt es spezifische Herausforderungen und Überlegungen, die für Embedded Software charakteristisch sind: 1 Anforderungsanalyse Diese Phase ist wie bei jeder Softwareentwicklung kritisch, aber bei Embedded Software muss besonders auf die Einschränkungen der Hardware, Echtzeitanforderungen und Umgebungsbedingungen geachtet werden. Die Anforderungen müssen sehr präzise definiert werden, um Spezifikationen wie Leistungsbedarf, Speichergröße und Energieverbrauch zu berücksichtigen. 2 Systemdesign Neben der Softwarearchitektur wird hier auch das Design des gesamten Systems einschließlich der Hardware berücksichtigt. Die Entwickler müssen entscheiden, wie die Software mit der Hardware interagieren wird, was oft die Entwicklung von Treibern und Middleware umfasst. 3 Implementierung Die Codierung von Embedded Software erfolgt oft in Programmiersprachen wie C, C++ oder Rust, die für die Entwicklung von Low-Level-Operationen geeignet sind. Entwickler müssen Code schreiben, der effizient mit der Hardware arbeitet und dabei die Ressourcenbeschränkungen beachtet. 4 Hardware-Software-Integration In diesem Schritt wird die entwickelte Software auf der Zielhardware getestet. Dies ist eine kritische Phase, in der die Interaktion zwischen Software und Hardware verifiziert und optimiert wird. Probleme wie Hardwaredefekte, Timing-Probleme und Speicherverletzungen müssen hier identifiziert und behoben werden. 5 Testen Das Testen von Embedded Software umfasst nicht nur Softwaretests, sondern auch Hardwaretests. Dies kann Unit-Tests, Integrationstests, Systemtests und spezielle Tests für Echtzeitfähigkeit, Leistungsverhalten und Fehlertoleranz beinhalten. 6 Deployment Die Bereitstellung von Embedded Software kann das Flashen der Software auf das Gerät oder das Durchführen von Firmware-Updates umfassen. In vielen Fällen ist die Software fest in die Hardware integriert, was Änderungen nach der Auslieferung erschwert. Wir unterstützen Sie bei der richtigen Updatestrategie und der Umsetzung. Somit bleiben sie selbst nach der Auslieferung flexibel mit Softwareänderungen. 7 Wartung und Updates Aufgrund der oft engen Integration mit der Hardware und der langen Lebensdauer vieler eingebetteter Geräte ist die Wartung von Embedded Software besonders wichtig.